package pio.action.visitante;

import DBMS.DataBaseManager;
import clases.Confirmacion;
import clases.Email;
import clases.Registro;
import clases.Usuario;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

/**
 *
 * @author charles
 */
public class EnviarContrasena extends Action {

    private final static String SUCCESS = "success";

    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        boolean valido = true;
        String correo = (String) request.getParameter("correo");
        String cedula = (String) request.getParameter("cedula");
        Usuario u = new Usuario();
        System.out.println("Request " + correo + "  " + cedula + " ");
        u.setCedula(cedula);
        u.setCorreo(correo);
        DataBaseManager dbms = DataBaseManager.getInstance();
        Registro r = dbms.consultarRegistro(u);
        Email e = new Email();
        e.setAsunto("Recuperacion de contrasena" + cedula);
        e.setCorreo(correo);
        e.setCorreoRemitente("Andreth91@gmail.com");
        e.setClave("@20674276computacion");
        e.setTexto("Su cedula es: " + r.getCedula() + "\nSu contrasena es: " + r.getClave());
        String[] correos = new String[1];
        correos[0] = correo;
        System.out.println(correo+"   ENVIANDO");
        String respuesta = e.enviar(correos);
        if (!respuesta.equalsIgnoreCase("Valido")) {
            valido = false;
        }
        Confirmacion c = new Confirmacion();
        if (valido) {
            c.setMensaje("Correo enviado con su contrasena");
        } else {
            c.setMensaje("Su correo no pudo ser enviado"
                    + "comuniquese al correo nrodriguez@usb.ve");
        }
        request.setAttribute("confirmacion", c);
        return mapping.findForward(SUCCESS);
    }
}
// String mensaje = "Usuario: " + u.getCedula() + "\n";
//        mensaje += "Contrasena: " + r.getClave();
//        mensaje += "Por favor guarde su contrasena en un lugar seguro o este correo en su bandeja";
//        // Recipient's email ID needs to be mentioned.
//        String to = correo;
//        // Sender's email ID needs to be mentioned
//        String from = "Andreth91@gmail.com";
//        // Assuming you are sending email from localhost
//        String host = "localhost";
//        // Get system properties
//        Properties properties = System.getProperties();
//        // Setup mail server
//        properties.setProperty("mail.smtp.host", host);
//        // Get the default Session object.
//        Session session = Session.getDefaultInstance(properties);
//        try {
//            // Create a default MimeMessage object.
//            MimeMessage message = new MimeMessage(session);
//            // Set From: header field of the header.
//            message.setFrom(new InternetAddress(from));
//            // Set To: header field of the header.
//            message.addRecipient(Message.RecipientType.TO,
//                    new InternetAddress(to));
//            // Set Subject: header field
//            message.setSubject("Envio de Contrasena PIO");
//            // Now set the actual message
//            message.setText(mensaje);
//            // Send message
//            Transport.send(message);
//            System.out.println("Mensaje enviado a " + correo);
//        } catch (MessagingException mex) {
//            mex.printStackTrace();
//            valido = false;
//        }
